<template>
    <section class="main">
      <input id="toggle-all" class="toggle-all" type="checkbox" v-model="isAll"/>
      <label for="toggle-all">全部标记为已完成</label>
      <ul class="todo-list">
        <!-- These are here just to show the structure of the list items -->
        <!-- List items should get the class `editing` when editing and `completed` when marked as completed -->
        <li :class="{ completed: item.isDone }" v-for="item in list" :key="item.id">
          <div class="view">
            <input class="toggle" type="checkbox" :checked="item.isDone"  @change="$emit('state', item.id)"/>
            <label>{{ item.name }}</label>
            <button class="destroy" @click="$emit('del', item.id)"></button>
          </div>
          <input class="edit" value="Create a TodoMVC template" />
        </li>
      </ul>
    </section>
</template>

<script>
export default {
    //  props: ['list']
    props: {
        list: Array
    },
    //  计算属性，计算大框是否该选中
    computed: {
      isAll: {
        get () {
          return this.list.every(item => item.isDone === true)
        },
        set (val) {
          // console.log(val)    // true | false
          //  把所有数据的 isDone 都改为 true 或 false
          //  数据在App 父组件中，所以需要 子传父
          this.$emit('changeAllState', val)
        }
      }
    }
}
</script>

<style>

</style>